using System;
using System.Collections.Generic;
using System.Text;

namespace Pegasus.Reflection
{
	/// <summary>
	/// This enum acts as a set of filters to exclude or include spcific valuesd from a fully qualified type name.
	/// </summary>
	[Flags]
	public enum TypeNameFilter : int
	{
		/// <summary>Don't exclude anything (if other flags are added then this does nothing)</summary>
		FullyQuailifiedName = 0x00000000,

		/// <summary>Exclude the version information from the type name</summary>
		ExcludeVersion = 0x00000001,

		/// <summary>Include an empty version (0.0.0.0) information in the type name</summary>
		IncludeEmptyVersion = 0x00000002,

		/// <summary>Exclude the culture information from the type name</summary>
		ExcludeCulture = 0x00000100,

		/// <summary>Include the invariant culture information in the type name</summary>
		IncludeInvariantCulture = 0x00000200,

		/// <summary>Include the neutral culture information in the type name</summary>
		IncludeNeutralCulture = 0x00000400,

		/// <summary>Exclude the public key information from the type name</summary>
		ExcludePublicKey = 0x00010000,
	}
}
